Sharing memory between processors, virtual processing elements or thread contexts conventionally requires coordination between the sharing entities to avoid corruption of memory. This usually requires additional overheard in terms of signaling as in test and set locks or a memory coherency scheme. Furthermore, in the event that the sharing entities are unaware of each other, memory may be corrupted due to inadvertent overwriting of another entity's data. There is also a need for security against malicious software running one or more processors/virtual processing elements.
What are needed are new memory security measures that overcome the deficiencies noted above.